package com.ruoyi.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 订单对象 jiajia_order
 *
 * @author knd
 * @date 2021-10-14
 */
public class JiajiaOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 用户id */
    @Excel(name = "用户id")
    private Long uid;

    /** 社工id */
    @Excel(name = "社工id")
    private Long wid;

    /** 项目id */
    @Excel(name = "项目id")
    private Long iid;

    /** 订单号 */
    @Excel(name = "订单号")
    private String orderSn;

    /** 添加时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "添加时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date addtime;

    /**开始服务时间*/
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date starTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /** 医院或社区ID */
    private Long hid;

    /** 科室ID */
    private Long hdid;

    /** 床号 */
    private String bedNum;

    /** 被社工人名称 */
    private String beCareName;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String tel;

    /**联系人*/
    private String name;

    /** 项目类型编码 */
    private String itemTypeCode;

    /** 地址 */
    @Excel(name = "地址")
    private String address;

    /** 详细地址 */
    @Excel(name = "详细地址")
    private String addressDes;

    /**地址定位*/
    private String lat;
    private String lng;
    private Integer cityId;

    /** 结算单ID */
    private Long osdid;

    /** 出行方式 */
    @Excel(name = "出行方式 0公交地铁 1出租滴滴")
    private Integer chuXing;

    /** 项目金额 */
    @Excel(name = "项目金额")
    private BigDecimal itemPrice;

    /** 出行费用 */
    @Excel(name = "出行费用")
    private BigDecimal chuXingPrice;

    /** 优惠金额 */
    @Excel(name = "优惠金额")
    private BigDecimal youHuiPrice;

    /** 优惠券id */
    @Excel(name = "优惠券id")
    private Long couponId;

    /** 总金额 */
    @Excel(name = "总金额")
    private BigDecimal totalPrice;

    /** 实付金额 */
    @Excel(name = "实付金额")
    private BigDecimal realPrice;

    /** 状态 */
    @Excel(name = "状态 0待支付 1订单提交 2社工接单 3社工出发 4社工到达 5服务中 6技师点完成 7已取消 8社工拒绝接单 9用户点完成")
    private Integer status;

    /** 接单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "接单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date jietime;

    /** 出发时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "出发时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date chufatime;

    /** 到达时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "到达时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date daodatime;

    /** 取消时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "取消时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date canceltime;

    /** 取消原因 */
    @Excel(name = "取消原因")
    private String cancelNote;

    /** 取消备注 */
    @Excel(name = "取消备注")
    private String cancelContent;

    /** 取消订单图片 */
    @Excel(name = "取消订单图片")
    private String cancelUrls;

    /**是否评价 0 否 1 是*/
    private Integer isPingJia;

    /**备注**/
    private String note;

    /**支付方式 0余额 1 微信 2支付宝 3 微信小程序*/
    private Integer payType;

    /**项目时长(小时)*/
    private Integer timeSpan;

    /**是否申请售后 0 否 1是*/
    private Integer isShouHou;

    /**支付时间*/
    private Date paytime;
    /**支付状态 0 待支付 1 支付成功*/
    private Integer payStatus;
    /**取消状态 0 待退款 1 已退款*/
    private Integer cancelStatus;
    /**保姆月数*/
    private Integer nannyMonth;

    ///////////////不在数据库/////////////

    private String wName;
    private Integer wSex;
    private String iName;
    private String wAvatar;
    private String iPhoto;
    private String uName;
    private String uAvatar;
    private String wPhone;
    /** 医院名称 */
    private String hname;
    /** 科室名称 */
    private String hdname;
    /** 项目类型名称 */
    private String itemTypeName;
    //订单归属区域
    private Long  deptId;

    private List<JiajiaOrderTime> orderTimeList;

    private String transactionId;

    public String getTransactionId() {
        return transactionId;
    }

    public void setTransactionId(String transactionId) {
        this.transactionId = transactionId;
    }

    public Integer getCancelStatus() {
        return cancelStatus;
    }

    public void setCancelStatus(Integer cancelStatus) {
        this.cancelStatus = cancelStatus;
    }

    public Date getPaytime() {
        return paytime;
    }

    public void setPaytime(Date paytime) {
        this.paytime = paytime;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public Integer getPayStatus() {
        return payStatus;
    }

    public void setPayStatus(Integer payStatus) {
        this.payStatus = payStatus;
    }

    public Integer getIsShouHou() {
        return isShouHou;
    }

    public void setIsShouHou(Integer isShouHou) {
        this.isShouHou = isShouHou;
    }

    public String getwPhone() {
        return wPhone;
    }

    public void setwPhone(String wPhone) {
        this.wPhone = wPhone;
    }

    public Integer getCityId() {
        return cityId;
    }

    public void setCityId(Integer cityId) {
        this.cityId = cityId;
    }

    public Date getStarTime() {
        return starTime;
    }

    public void setStarTime(Date starTime) {
        this.starTime = starTime;
    }

    public String getuAvatar() {
        return uAvatar;
    }

    public void setuAvatar(String uAvatar) {
        this.uAvatar = uAvatar;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getuName() {
        return uName;
    }

    public void setuName(String uName) {
        this.uName = uName;
    }

    public Date getChufatime() {
        return chufatime;
    }

    public void setChufatime(Date chufatime) {
        this.chufatime = chufatime;
    }

    public Date getDaodatime() {
        return daodatime;
    }

    public void setDaodatime(Date daodatime) {
        this.daodatime = daodatime;
    }

    public String getLat() {
        return lat;
    }

    public void setLat(String lat) {
        this.lat = lat;
    }

    public String getLng() {
        return lng;
    }

    public void setLng(String lng) {
        this.lng = lng;
    }

    public Integer getTimeSpan() {
        return timeSpan;
    }

    public void setTimeSpan(Integer timeSpan) {
        this.timeSpan = timeSpan;
    }

    public String getItemTypeCode() {
        return itemTypeCode;
    }

    public void setItemTypeCode(String itemTypeCode) {
        this.itemTypeCode = itemTypeCode;
    }

    public String getwAvatar() {
        return wAvatar;
    }

    public void setwAvatar(String wAvatar) {
        this.wAvatar = wAvatar;
    }

    public String getiPhoto() {
        return iPhoto;
    }

    public void setiPhoto(String iPhoto) {
        this.iPhoto = iPhoto;
    }

    public Integer getwSex() {
        return wSex;
    }

    public void setwSex(Integer wSex) {
        this.wSex = wSex;
    }

    public String getiName() {
        return iName;
    }

    public void setiName(String iName) {
        this.iName = iName;
    }

    public Integer getPayType() {
        return payType;
    }

    public void setPayType(Integer payType) {
        this.payType = payType;
    }

    public String getNote() {
        return note;
    }

    public void setNote(String note) {
        this.note = note;
    }

    public String getwName() {
        return wName;
    }

    public void setwName(String wName) {
        this.wName = wName;
    }

    public Integer getIsPingJia() {
        return isPingJia;
    }

    public void setIsPingJia(Integer isPingJia) {
        this.isPingJia = isPingJia;
    }

    public String getCancelNote() {
        return cancelNote;
    }

    public void setCancelNote(String cancelNote) {
        this.cancelNote = cancelNote;
    }

    public String getCancelContent() {
        return cancelContent;
    }

    public void setCancelContent(String cancelContent) {
        this.cancelContent = cancelContent;
    }

    public Long getOsdid() {
        return osdid;
    }

    public void setOsdid(Long osdid) {
        this.osdid = osdid;
    }

    public String getCancelUrls() {
        return cancelUrls;
    }

    public void setCancelUrls(String cancelUrls) {
        this.cancelUrls = cancelUrls;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setUid(Long uid)
    {
        this.uid = uid;
    }

    public Long getUid()
    {
        return uid;
    }
    public void setWid(Long wid)
    {
        this.wid = wid;
    }

    public Long getWid()
    {
        return wid;
    }
    public void setIid(Long iid)
    {
        this.iid = iid;
    }

    public Long getIid()
    {
        return iid;
    }

    public Long getHid() {
        return hid;
    }

    public void setHid(Long hid) {
        this.hid = hid;
    }

    public Long getHdid() {
        return hdid;
    }

    public void setHdid(Long hdid) {
        this.hdid = hdid;
    }

    public String getBedNum() {
        return bedNum;
    }

    public void setBedNum(String bedNum) {
        this.bedNum = bedNum;
    }

    public String getBeCareName() {
        return beCareName;
    }

    public void setBeCareName(String beCareName) {
        this.beCareName = beCareName;
    }

    public void setOrderSn(String orderSn)
    {
        this.orderSn = orderSn;
    }

    public String getOrderSn()
    {
        return orderSn;
    }
    public void setAddtime(Date addtime)
    {
        this.addtime = addtime;
    }

    public Date getAddtime()
    {
        return addtime;
    }

    public void setEndtime(Date endtime)
    {
        this.endTime = endtime;
    }

    public Date getEndtime()
    {
        return endTime;
    }
    public void setTel(String tel)
    {
        this.tel = tel;
    }

    public String getTel()
    {
        return tel;
    }
    public void setAddress(String address)
    {
        this.address = address;
    }

    public String getAddress()
    {
        return address;
    }
    public void setAddressDes(String addressDes)
    {
        this.addressDes = addressDes;
    }

    public String getAddressDes()
    {
        return addressDes;
    }
    public void setChuXing(Integer chuXing)
    {
        this.chuXing = chuXing;
    }

    public Integer getChuXing()
    {
        return chuXing;
    }
    public void setItemPrice(BigDecimal itemPrice)
    {
        this.itemPrice = itemPrice;
    }

    public BigDecimal getItemPrice()
    {
        return itemPrice;
    }
    public void setChuXingPrice(BigDecimal chuXingPrice)
    {
        this.chuXingPrice = chuXingPrice;
    }

    public BigDecimal getChuXingPrice()
    {
        return chuXingPrice;
    }
    public void setYouHuiPrice(BigDecimal youHuiPrice)
    {
        this.youHuiPrice = youHuiPrice;
    }

    public BigDecimal getYouHuiPrice()
    {
        return youHuiPrice;
    }
    public void setCouponId(Long couponId)
    {
        this.couponId = couponId;
    }

    public Long getCouponId()
    {
        return couponId;
    }
    public void setTotalPrice(BigDecimal totalPrice)
    {
        this.totalPrice = totalPrice;
    }

    public BigDecimal getTotalPrice()
    {
        return totalPrice;
    }
    public void setRealPrice(BigDecimal realPrice)
    {
        this.realPrice = realPrice;
    }

    public BigDecimal getRealPrice()
    {
        return realPrice;
    }
    public void setStatus(Integer status)
    {
        this.status = status;
    }

    public Integer getStatus()
    {
        return status;
    }
    public void setJietime(Date jietime)
    {
        this.jietime = jietime;
    }

    public Date getJietime()
    {
        return jietime;
    }
    public void setCanceltime(Date canceltime)
    {
        this.canceltime = canceltime;
    }

    public Date getCanceltime()
    {
        return canceltime;
    }

    public List<JiajiaOrderTime> getOrderTimeList() {
        return orderTimeList;
    }

    public void setOrderTimeList(List<JiajiaOrderTime> orderTimeList) {
        this.orderTimeList = orderTimeList;
    }

    public String getHname() {
        return hname;
    }

    public void setHname(String hname) {
        this.hname = hname;
    }

    public String getHdname() {
        return hdname;
    }

    public void setHdname(String hdname) {
        this.hdname = hdname;
    }

    public String getItemTypeName() {
        return itemTypeName;
    }

    public void setItemTypeName(String itemTypeName) {
        this.itemTypeName = itemTypeName;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Integer getNannyMonth() {
        return nannyMonth;
    }

    public void setNannyMonth(Integer nannyMonth) {
        this.nannyMonth = nannyMonth;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("uid", getUid())
                .append("wid", getWid())
                .append("iid", getIid())
                .append("orderSn", getOrderSn())
                .append("addtime", getAddtime())
                .append("endtime", getEndtime())
                .append("tel", getTel())
                .append("address", getAddress())
                .append("addressDes", getAddressDes())
                .append("chuXing", getChuXing())
                .append("itemPrice", getItemPrice())
                .append("chuXingPrice", getChuXingPrice())
                .append("youHuiPrice", getYouHuiPrice())
                .append("couponId", getCouponId())
                .append("totalPrice", getTotalPrice())
                .append("realPrice", getRealPrice())
                .append("status", getStatus())
                .append("jietime", getJietime())
                .append("canceltime", getCanceltime())
                .append("nannyMonth",getNannyMonth())
                .append("orderTimeList",getOrderTimeList())
                .toString();
    }
}
